Skip to content

Added guides to environment management#8

Open
sparafina-earthscope wants to merge 1 commit into
mainfrom
guides
Open

Added guides to environment management#8
sparafina-earthscope wants to merge 1 commit into
mainfrom
guides

Conversation

@sparafina-earthscope

Copy link
Copy Markdown

added binder_for_images.md, building_custom_images.md, and managing_environments.md

@netlify

netlify Bot commented Jul 8, 2026

Copy link
Copy Markdown

Deploy Preview for earthscope-geolab-docs ready!

Name Link
🔨 Latest commit 6568ee8
🔍 Latest deploy log https://app.netlify.com/projects/earthscope-geolab-docs/deploys/6a4ec79ee3718300085feedf
😎 Deploy Preview https://deploy-preview-8--earthscope-geolab-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@sarahw-earthscope sarahw-earthscope left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The content of the new pages is fantastic!

The organization of the whole section now feels chaotic, however. What started as a single page of bullet-summary followed by expanded details for each option, now just feels super redundant with those more detailed options linking out to more pages. I'd love to see one overhead page with a brief summary of the different installation options (this should help users differentiate their use case), and then link to the sub-page for the guide on each one.

Comment thread myst.yml
- file: advanced_topics/env_mgmt.md
- file: advanced_topics/environments/managing_environments.md
- file: advanced_topics/environments/building_custom_images.md
- file: advanced_topics/environments/binder-for-images.md

@sarahw-earthscope sarahw-earthscope Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you nest these three pages as sub-sections under the environment management section?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, binder_for_images.md isn't showing up in the rendered preview because you've got hyphens instead of underscores in the filename.


When you open GeoLab and select an environment when starting your server, you launch into a pre-configured virtual python environment. These environments typically include many commonly used geophysics tools, but we cannot include everything. Additional software and packages can be installed by users in GeoLab, with several options:

* [Ephemeral Installation:](#ephemeral-installation) Due to the ephemeral nature of the JupyterHub servers, packages installed on the server will only be valid for your current session and will not persist from one session to another. You will need to reinstall them each time you log back in to GeoLab, or add them to your notebooks as magic commands.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add 'create a new python environment' with brief summary here


## Ephemeral Installation
For detailed instructions for installing packages in GeoLab see the [guide](./environments/managing_environments.md)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section needs a lot of smoothing. It's not clear if they're supposed to keep reading here, or jump to the new guide.

Even if the page ends up being super short, it might make sense to put ephemeral installs in their own .md file just to keep it organized and readable.

@@ -0,0 +1,159 @@
# Creating Your Own Python Environment in GeoLab

Python projects rely on add-on packages, which are collections of code that do useful things like process data, make maps, or analyze signals. Different projects often need different packages, or even different versions of the same package. An **environment** is a way to keep all of that organized in one tidy, self-contained workspace.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a clarification that they are already inside a conda environment when they launch GeoLab.

conda env create -f environment.yml
```

Conda will figure out which versions of everything are compatible and download them. This can take a few minutes, which is normal.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to add clarification here that these things are getting installed in a NEW environment that doesn't include everything in the geolab-base. Their environment.yml needs to include all the packages they want to install, not just the ones that were missing from base.

- python=3.11
- ipykernel
- numpy
- matplotlib

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Include explicit instructions for pip / requirements.txt , since many niche packages written by research labs aren't available on conda


1. Open a notebook and go to **Kernel > Change Kernel…**

![Kernel menu showing the Change Kernel option](./images/select_kernel.png)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

images aren't rendering in the build preview, make sure they are included in the MR

@@ -7,6 +7,8 @@
* [Bring Your Own Image:](#bring-your-own-image) Many other organizations (e.g, NASA, NOAA) maintain their own JupyterHub compute environment images. Many of these will run in GeoLab.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a list item for binder

## Create a Custom Image
:::{attention} Section Under Development!
:::
You can build a custom own image using our existing image as a template. This strategy is an advanced approach for software with complex installations, and only recommended for users with some prior knowledge of building containers.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These summaries now feel redundant with the summary bullets above and the details on a separate page.

[2i2c guide to binderhub](https://docs.2i2c.org/user/environment/dynamic-imagebuilding/#user-environment-building) - This strategy is an option if you want to use an environment file that extends the base GeoLab image with additional python packages, but don't want to build and host an image. You can specify your environment file once to generate a stable container, and load that at launch time. Note, there's a 15-20 minute overhead to build the image in GeoLab the first time and any time you change the environment file, you will need to consider whether this will save you time in the long run.

- If you need to make extensive software changes, you can build your own image using our existing image as a template. Instructions are located in the `README.md` file in the [GeoLab GitHub repository.]({{ geolab_github }}) You will need to clone the repository, modify the build files to suit your needs, build your container and upload it to a public container registry like DockerHub or AWS ECR, and then select it as 'Other' from the dropdown when you [launch your GeoLab server](../getting_started/server_launch.md). This strategy is an advanced approach for software with complex installations, and only recommended for users with some prior knowledge of building docker containers.
Follow the instructions to deploy a custom image from a GitHub repository using binder in this [guide](./environments/binder_for_images.md).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's confusing to have two links here (one to 2i2c, one to our guide), users won't know which one to follow. I'd suggest linking to our guide, and then at the end of that, add "see the 2i2c guide for additional details"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants